{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 第一周基础作业——线性回归分析\n",
    "基于2011年自行车数据的回归分析，预测2012年的单车共享数量"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 1、导入必要的工具包"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "\n",
    "from sklearn.metrics import r2_score\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 2、数据探索"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.1 读取数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false,
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>dteday</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.344167</td>\n",
       "      <td>0.363625</td>\n",
       "      <td>0.805833</td>\n",
       "      <td>0.160446</td>\n",
       "      <td>331</td>\n",
       "      <td>654</td>\n",
       "      <td>985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2011-01-02</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.363478</td>\n",
       "      <td>0.353739</td>\n",
       "      <td>0.696087</td>\n",
       "      <td>0.248539</td>\n",
       "      <td>131</td>\n",
       "      <td>670</td>\n",
       "      <td>801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2011-01-03</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.196364</td>\n",
       "      <td>0.189405</td>\n",
       "      <td>0.437273</td>\n",
       "      <td>0.248309</td>\n",
       "      <td>120</td>\n",
       "      <td>1229</td>\n",
       "      <td>1349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2011-01-04</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>0.212122</td>\n",
       "      <td>0.590435</td>\n",
       "      <td>0.160296</td>\n",
       "      <td>108</td>\n",
       "      <td>1454</td>\n",
       "      <td>1562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2011-01-05</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.226957</td>\n",
       "      <td>0.229270</td>\n",
       "      <td>0.436957</td>\n",
       "      <td>0.186900</td>\n",
       "      <td>82</td>\n",
       "      <td>1518</td>\n",
       "      <td>1600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   instant      dteday  season  yr  mnth  holiday  weekday  workingday  \\\n",
       "0        1  2011-01-01       1   0     1        0        6           0   \n",
       "1        2  2011-01-02       1   0     1        0        0           0   \n",
       "2        3  2011-01-03       1   0     1        0        1           1   \n",
       "3        4  2011-01-04       1   0     1        0        2           1   \n",
       "4        5  2011-01-05       1   0     1        0        3           1   \n",
       "\n",
       "   weathersit      temp     atemp       hum  windspeed  casual  registered  \\\n",
       "0           2  0.344167  0.363625  0.805833   0.160446     331         654   \n",
       "1           2  0.363478  0.353739  0.696087   0.248539     131         670   \n",
       "2           1  0.196364  0.189405  0.437273   0.248309     120        1229   \n",
       "3           1  0.200000  0.212122  0.590435   0.160296     108        1454   \n",
       "4           1  0.226957  0.229270  0.436957   0.186900      82        1518   \n",
       "\n",
       "    cnt  \n",
       "0   985  \n",
       "1   801  \n",
       "2  1349  \n",
       "3  1562  \n",
       "4  1600  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# read data from csv\n",
    "\n",
    "data=pd.read_csv(\"day.csv\")\n",
    "\n",
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false,
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>dteday</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>726</th>\n",
       "      <td>727</td>\n",
       "      <td>2012-12-27</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0.254167</td>\n",
       "      <td>0.226642</td>\n",
       "      <td>0.652917</td>\n",
       "      <td>0.350133</td>\n",
       "      <td>247</td>\n",
       "      <td>1867</td>\n",
       "      <td>2114</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>727</th>\n",
       "      <td>728</td>\n",
       "      <td>2012-12-28</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0.253333</td>\n",
       "      <td>0.255046</td>\n",
       "      <td>0.590000</td>\n",
       "      <td>0.155471</td>\n",
       "      <td>644</td>\n",
       "      <td>2451</td>\n",
       "      <td>3095</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>728</th>\n",
       "      <td>729</td>\n",
       "      <td>2012-12-29</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.253333</td>\n",
       "      <td>0.242400</td>\n",
       "      <td>0.752917</td>\n",
       "      <td>0.124383</td>\n",
       "      <td>159</td>\n",
       "      <td>1182</td>\n",
       "      <td>1341</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>729</th>\n",
       "      <td>730</td>\n",
       "      <td>2012-12-30</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.255833</td>\n",
       "      <td>0.231700</td>\n",
       "      <td>0.483333</td>\n",
       "      <td>0.350754</td>\n",
       "      <td>364</td>\n",
       "      <td>1432</td>\n",
       "      <td>1796</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>730</th>\n",
       "      <td>731</td>\n",
       "      <td>2012-12-31</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0.215833</td>\n",
       "      <td>0.223487</td>\n",
       "      <td>0.577500</td>\n",
       "      <td>0.154846</td>\n",
       "      <td>439</td>\n",
       "      <td>2290</td>\n",
       "      <td>2729</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     instant      dteday  season  yr  mnth  holiday  weekday  workingday  \\\n",
       "726      727  2012-12-27       1   1    12        0        4           1   \n",
       "727      728  2012-12-28       1   1    12        0        5           1   \n",
       "728      729  2012-12-29       1   1    12        0        6           0   \n",
       "729      730  2012-12-30       1   1    12        0        0           0   \n",
       "730      731  2012-12-31       1   1    12        0        1           1   \n",
       "\n",
       "     weathersit      temp     atemp       hum  windspeed  casual  registered  \\\n",
       "726           2  0.254167  0.226642  0.652917   0.350133     247        1867   \n",
       "727           2  0.253333  0.255046  0.590000   0.155471     644        2451   \n",
       "728           2  0.253333  0.242400  0.752917   0.124383     159        1182   \n",
       "729           1  0.255833  0.231700  0.483333   0.350754     364        1432   \n",
       "730           2  0.215833  0.223487  0.577500   0.154846     439        2290   \n",
       "\n",
       "      cnt  \n",
       "726  2114  \n",
       "727  3095  \n",
       "728  1341  \n",
       "729  1796  \n",
       "730  2729  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(731, 16)"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "通过观察，原始数据共有731行，16列，前半部分是2011年数据(yr=0)，后半部分是2012年数据(yr=1)。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###  2.2 训练数据和测试数据分割"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "将2011年数据作为训练数据，2012年数据作为测试数据。即原始数据的前365个数据作为训练数据，剩下的作为测试数据。（打印数据分割线附近的数据。）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>dteday</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>360</th>\n",
       "      <td>361</td>\n",
       "      <td>2011-12-27</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0.325000</td>\n",
       "      <td>0.327633</td>\n",
       "      <td>0.762500</td>\n",
       "      <td>0.188450</td>\n",
       "      <td>103</td>\n",
       "      <td>1059</td>\n",
       "      <td>1162</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>361</th>\n",
       "      <td>362</td>\n",
       "      <td>2011-12-28</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.299130</td>\n",
       "      <td>0.279974</td>\n",
       "      <td>0.503913</td>\n",
       "      <td>0.293961</td>\n",
       "      <td>255</td>\n",
       "      <td>2047</td>\n",
       "      <td>2302</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>362</th>\n",
       "      <td>363</td>\n",
       "      <td>2011-12-29</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.248333</td>\n",
       "      <td>0.263892</td>\n",
       "      <td>0.574167</td>\n",
       "      <td>0.119412</td>\n",
       "      <td>254</td>\n",
       "      <td>2169</td>\n",
       "      <td>2423</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>363</th>\n",
       "      <td>364</td>\n",
       "      <td>2011-12-30</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.311667</td>\n",
       "      <td>0.318812</td>\n",
       "      <td>0.636667</td>\n",
       "      <td>0.134337</td>\n",
       "      <td>491</td>\n",
       "      <td>2508</td>\n",
       "      <td>2999</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>364</th>\n",
       "      <td>365</td>\n",
       "      <td>2011-12-31</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>12</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.410000</td>\n",
       "      <td>0.414121</td>\n",
       "      <td>0.615833</td>\n",
       "      <td>0.220154</td>\n",
       "      <td>665</td>\n",
       "      <td>1820</td>\n",
       "      <td>2485</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     instant      dteday  season  yr  mnth  holiday  weekday  workingday  \\\n",
       "360      361  2011-12-27       1   0    12        0        2           1   \n",
       "361      362  2011-12-28       1   0    12        0        3           1   \n",
       "362      363  2011-12-29       1   0    12        0        4           1   \n",
       "363      364  2011-12-30       1   0    12        0        5           1   \n",
       "364      365  2011-12-31       1   0    12        0        6           0   \n",
       "\n",
       "     weathersit      temp     atemp       hum  windspeed  casual  registered  \\\n",
       "360           2  0.325000  0.327633  0.762500   0.188450     103        1059   \n",
       "361           1  0.299130  0.279974  0.503913   0.293961     255        2047   \n",
       "362           1  0.248333  0.263892  0.574167   0.119412     254        2169   \n",
       "363           1  0.311667  0.318812  0.636667   0.134337     491        2508   \n",
       "364           1  0.410000  0.414121  0.615833   0.220154     665        1820   \n",
       "\n",
       "      cnt  \n",
       "360  1162  \n",
       "361  2302  \n",
       "362  2423  \n",
       "363  2999  \n",
       "364  2485  "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trainingData=data[data.yr==0]\n",
    "testData=data[data.yr==1]\n",
    "trainingData.tail()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>dteday</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>365</th>\n",
       "      <td>366</td>\n",
       "      <td>2012-01-01</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.370000</td>\n",
       "      <td>0.375621</td>\n",
       "      <td>0.692500</td>\n",
       "      <td>0.192167</td>\n",
       "      <td>686</td>\n",
       "      <td>1608</td>\n",
       "      <td>2294</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>366</th>\n",
       "      <td>367</td>\n",
       "      <td>2012-01-02</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0.273043</td>\n",
       "      <td>0.252304</td>\n",
       "      <td>0.381304</td>\n",
       "      <td>0.329665</td>\n",
       "      <td>244</td>\n",
       "      <td>1707</td>\n",
       "      <td>1951</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>367</th>\n",
       "      <td>368</td>\n",
       "      <td>2012-01-03</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.150000</td>\n",
       "      <td>0.126275</td>\n",
       "      <td>0.441250</td>\n",
       "      <td>0.365671</td>\n",
       "      <td>89</td>\n",
       "      <td>2147</td>\n",
       "      <td>2236</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>368</th>\n",
       "      <td>369</td>\n",
       "      <td>2012-01-04</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0.107500</td>\n",
       "      <td>0.119337</td>\n",
       "      <td>0.414583</td>\n",
       "      <td>0.184700</td>\n",
       "      <td>95</td>\n",
       "      <td>2273</td>\n",
       "      <td>2368</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>369</th>\n",
       "      <td>370</td>\n",
       "      <td>2012-01-05</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.265833</td>\n",
       "      <td>0.278412</td>\n",
       "      <td>0.524167</td>\n",
       "      <td>0.129987</td>\n",
       "      <td>140</td>\n",
       "      <td>3132</td>\n",
       "      <td>3272</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     instant      dteday  season  yr  mnth  holiday  weekday  workingday  \\\n",
       "365      366  2012-01-01       1   1     1        0        0           0   \n",
       "366      367  2012-01-02       1   1     1        1        1           0   \n",
       "367      368  2012-01-03       1   1     1        0        2           1   \n",
       "368      369  2012-01-04       1   1     1        0        3           1   \n",
       "369      370  2012-01-05       1   1     1        0        4           1   \n",
       "\n",
       "     weathersit      temp     atemp       hum  windspeed  casual  registered  \\\n",
       "365           1  0.370000  0.375621  0.692500   0.192167     686        1608   \n",
       "366           1  0.273043  0.252304  0.381304   0.329665     244        1707   \n",
       "367           1  0.150000  0.126275  0.441250   0.365671      89        2147   \n",
       "368           2  0.107500  0.119337  0.414583   0.184700      95        2273   \n",
       "369           1  0.265833  0.278412  0.524167   0.129987     140        3132   \n",
       "\n",
       "      cnt  \n",
       "365  2294  \n",
       "366  1951  \n",
       "367  2236  \n",
       "368  2368  \n",
       "369  3272  "
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "testData.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.3 数据探索\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2.3.1 对原始数据是否有空值和数据类型进行探索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 731 entries, 0 to 730\n",
      "Data columns (total 16 columns):\n",
      "instant       731 non-null int64\n",
      "dteday        731 non-null object\n",
      "season        731 non-null int64\n",
      "yr            731 non-null int64\n",
      "mnth          731 non-null int64\n",
      "holiday       731 non-null int64\n",
      "weekday       731 non-null int64\n",
      "workingday    731 non-null int64\n",
      "weathersit    731 non-null int64\n",
      "temp          731 non-null float64\n",
      "atemp         731 non-null float64\n",
      "hum           731 non-null float64\n",
      "windspeed     731 non-null float64\n",
      "casual        731 non-null int64\n",
      "registered    731 non-null int64\n",
      "cnt           731 non-null int64\n",
      "dtypes: float64(4), int64(11), object(1)\n",
      "memory usage: 91.5+ KB\n"
     ]
    }
   ],
   "source": [
    "data.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "原始数据中所有列均无空值，即训练数据和测试数据都很完整。自此以下部分，均对训练数据进行探索。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2.3.2 对各个特征的统计值进行探索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.0</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>183.000000</td>\n",
       "      <td>2.498630</td>\n",
       "      <td>0.0</td>\n",
       "      <td>6.526027</td>\n",
       "      <td>0.027397</td>\n",
       "      <td>3.008219</td>\n",
       "      <td>0.684932</td>\n",
       "      <td>1.421918</td>\n",
       "      <td>0.486665</td>\n",
       "      <td>0.466835</td>\n",
       "      <td>0.643665</td>\n",
       "      <td>0.191403</td>\n",
       "      <td>677.402740</td>\n",
       "      <td>2728.358904</td>\n",
       "      <td>3405.761644</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>105.510663</td>\n",
       "      <td>1.110946</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.452584</td>\n",
       "      <td>0.163462</td>\n",
       "      <td>2.006155</td>\n",
       "      <td>0.465181</td>\n",
       "      <td>0.571831</td>\n",
       "      <td>0.189596</td>\n",
       "      <td>0.168836</td>\n",
       "      <td>0.148744</td>\n",
       "      <td>0.076890</td>\n",
       "      <td>556.269121</td>\n",
       "      <td>1060.110413</td>\n",
       "      <td>1378.753666</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.059130</td>\n",
       "      <td>0.079070</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.022392</td>\n",
       "      <td>9.000000</td>\n",
       "      <td>416.000000</td>\n",
       "      <td>431.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>92.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.325000</td>\n",
       "      <td>0.321954</td>\n",
       "      <td>0.538333</td>\n",
       "      <td>0.135583</td>\n",
       "      <td>222.000000</td>\n",
       "      <td>1730.000000</td>\n",
       "      <td>2132.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>183.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.479167</td>\n",
       "      <td>0.472846</td>\n",
       "      <td>0.647500</td>\n",
       "      <td>0.186900</td>\n",
       "      <td>614.000000</td>\n",
       "      <td>2915.000000</td>\n",
       "      <td>3740.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>274.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.656667</td>\n",
       "      <td>0.612379</td>\n",
       "      <td>0.742083</td>\n",
       "      <td>0.235075</td>\n",
       "      <td>871.000000</td>\n",
       "      <td>3632.000000</td>\n",
       "      <td>4586.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>365.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>0.0</td>\n",
       "      <td>12.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>0.849167</td>\n",
       "      <td>0.840896</td>\n",
       "      <td>0.972500</td>\n",
       "      <td>0.507463</td>\n",
       "      <td>3065.000000</td>\n",
       "      <td>4614.000000</td>\n",
       "      <td>6043.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          instant      season     yr        mnth     holiday     weekday  \\\n",
       "count  365.000000  365.000000  365.0  365.000000  365.000000  365.000000   \n",
       "mean   183.000000    2.498630    0.0    6.526027    0.027397    3.008219   \n",
       "std    105.510663    1.110946    0.0    3.452584    0.163462    2.006155   \n",
       "min      1.000000    1.000000    0.0    1.000000    0.000000    0.000000   \n",
       "25%     92.000000    2.000000    0.0    4.000000    0.000000    1.000000   \n",
       "50%    183.000000    3.000000    0.0    7.000000    0.000000    3.000000   \n",
       "75%    274.000000    3.000000    0.0   10.000000    0.000000    5.000000   \n",
       "max    365.000000    4.000000    0.0   12.000000    1.000000    6.000000   \n",
       "\n",
       "       workingday  weathersit        temp       atemp         hum   windspeed  \\\n",
       "count  365.000000  365.000000  365.000000  365.000000  365.000000  365.000000   \n",
       "mean     0.684932    1.421918    0.486665    0.466835    0.643665    0.191403   \n",
       "std      0.465181    0.571831    0.189596    0.168836    0.148744    0.076890   \n",
       "min      0.000000    1.000000    0.059130    0.079070    0.000000    0.022392   \n",
       "25%      0.000000    1.000000    0.325000    0.321954    0.538333    0.135583   \n",
       "50%      1.000000    1.000000    0.479167    0.472846    0.647500    0.186900   \n",
       "75%      1.000000    2.000000    0.656667    0.612379    0.742083    0.235075   \n",
       "max      1.000000    3.000000    0.849167    0.840896    0.972500    0.507463   \n",
       "\n",
       "            casual   registered          cnt  \n",
       "count   365.000000   365.000000   365.000000  \n",
       "mean    677.402740  2728.358904  3405.761644  \n",
       "std     556.269121  1060.110413  1378.753666  \n",
       "min       9.000000   416.000000   431.000000  \n",
       "25%     222.000000  1730.000000  2132.000000  \n",
       "50%     614.000000  2915.000000  3740.000000  \n",
       "75%     871.000000  3632.000000  4586.000000  \n",
       "max    3065.000000  4614.000000  6043.000000  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trainingData.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "各特征之间均值的差异较大，稍后需用归一化。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2.3.3 对y值进行探索"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x18739dda160>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig= plt.figure()\n",
    "sns.distplot(trainingData.cnt.values,bins=50,kde=True)\n",
    "plt.xlabel('cnt in 2011',fontsize=12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.text.Text at 0x1873a2e9128>"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x18739dda278>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(range(trainingData.shape[0]),trainingData[\"cnt\"].values,color='red')\n",
    "plt.title(\"Distribution of cnt\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2.3.4 对每个特征进行探索"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "instant 是对各数据的行数进行标记。   \n",
    "\n",
    "dteday 类似instant，是对各数据的日期进行标记。可与instant二取一。  \n",
    "\n",
    "season是类别特征，一共4类。  \n",
    "\n",
    "yr不提供任何有价值的信息，均为0。应去掉。  \n",
    "\n",
    "month也是类别特征，一共12类。  \n",
    "\n",
    "holiday 类别特征，一共2类。  \n",
    "\n",
    "weekday 类别特征，一共7类。  \n",
    "\n",
    "workingday 类别特征，一共2类。  \n",
    "\n",
    "weathersit 类别特征，一种4类。 （此处，4类是根据数据说明中的说法，实际我们的训练数据中，只有三类。）\n",
    "\n",
    "temp 数值特征。  \n",
    "\n",
    "atemp 数值特征。  \n",
    "\n",
    "hum 数值特征。  \n",
    "\n",
    "windspeed 数值特征。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nmv4fz+N+S8WvJzMAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x18739f48668>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.countplot(trainingData.holiday);\n",
    "plt.xlabel('holiday');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "通过上图，我们可知holiday=1，即是假期的数据特别少，所以模型对假期的预测可能要比非假期的预测差一点。（这点可以在后期进行验证。）同理，还有可能对workingday=0,也就是非工作日的预测会比工作日的差一点。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1873a2d69e8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.countplot(trainingData.weathersit);\n",
    "plt.xlabel('weathersit in train data');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "通过上图，我们可知weathersit在训练集中只有三类。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\ngg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1873a3b8470>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#对temp进行探索\n",
    "fig=plt.figure()\n",
    "sns.distplot(trainingData.temp.values,bins=50,kde=True)\n",
    "plt.xlabel('temp',fontsize=12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1873a513c88>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#对atemp进行探索\n",
    "fig=plt.figure()\n",
    "sns.distplot(trainingData.atemp.values,bins=50,kde=True)\n",
    "plt.xlabel('atemp',fontsize=12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "atemp和temp看起来差不多，在两两关系的分析中，我们需看他们的相关性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1873a3c24e0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#对hum进行探索\n",
    "fig=plt.figure()\n",
    "sns.distplot(trainingData.hum.values,bins=50,kde=True)\n",
    "plt.xlabel('hum',fontsize=12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "hum这个数据看起来有离群点，认为小于0.2为离群点"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nEfGZ/w90BWzCIc8hAgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1873a4e56d8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#对windspeed进行探索\n",
    "fig=plt.figure()\n",
    "sns.distplot(trainingData.windspeed.values,bins=50,kde=True)\n",
    "plt.xlabel('windspeed',fontsize=12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "windspeed这个数据中，可认为大于0.45为离群点"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "根据初步的分析，去掉不必要的数据： dteday， yr。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>season</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.344167</td>\n",
       "      <td>0.363625</td>\n",
       "      <td>0.805833</td>\n",
       "      <td>0.160446</td>\n",
       "      <td>331</td>\n",
       "      <td>654</td>\n",
       "      <td>985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.363478</td>\n",
       "      <td>0.353739</td>\n",
       "      <td>0.696087</td>\n",
       "      <td>0.248539</td>\n",
       "      <td>131</td>\n",
       "      <td>670</td>\n",
       "      <td>801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.196364</td>\n",
       "      <td>0.189405</td>\n",
       "      <td>0.437273</td>\n",
       "      <td>0.248309</td>\n",
       "      <td>120</td>\n",
       "      <td>1229</td>\n",
       "      <td>1349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>0.212122</td>\n",
       "      <td>0.590435</td>\n",
       "      <td>0.160296</td>\n",
       "      <td>108</td>\n",
       "      <td>1454</td>\n",
       "      <td>1562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.226957</td>\n",
       "      <td>0.229270</td>\n",
       "      <td>0.436957</td>\n",
       "      <td>0.186900</td>\n",
       "      <td>82</td>\n",
       "      <td>1518</td>\n",
       "      <td>1600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   instant  season  mnth  holiday  weekday  workingday  weathersit      temp  \\\n",
       "0        1       1     1        0        6           0           2  0.344167   \n",
       "1        2       1     1        0        0           0           2  0.363478   \n",
       "2        3       1     1        0        1           1           1  0.196364   \n",
       "3        4       1     1        0        2           1           1  0.200000   \n",
       "4        5       1     1        0        3           1           1  0.226957   \n",
       "\n",
       "      atemp       hum  windspeed  casual  registered   cnt  \n",
       "0  0.363625  0.805833   0.160446     331         654   985  \n",
       "1  0.353739  0.696087   0.248539     131         670   801  \n",
       "2  0.189405  0.437273   0.248309     120        1229  1349  \n",
       "3  0.212122  0.590435   0.160296     108        1454  1562  \n",
       "4  0.229270  0.436957   0.186900      82        1518  1600  "
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "\n",
    "trainingData1=trainingData.drop('yr',axis = 1)\n",
    "trainingData1=trainingData1.drop('dteday',axis = 1)\n",
    "\n",
    "trainingData1.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "去掉离群点的数据： 去除windspeed>0.45， hum<0.2。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(363, 14)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trainingData1=trainingData1[trainingData1.hum>0.2]\n",
    "trainingData1=trainingData1[trainingData1.windspeed<0.45]\n",
    "trainingData1.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "2.3.5 分析两两特征的相关性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nJVAY3Y40s/uz+78wsw6S2gBPAF2A20vVnRc0tqwlpk071e1akaK35q++/G+K7LiF8WtsG2PuV1/G\njrBcFWVN03d6ZTqr64DYERrl/DOabgHhSlORj7meruc2fQ/vpnbk2umvRQG4+tDmX9OxoiqOOil2\nhEYp/9ZmsSM0Spu1esVpQVOPDu17rtQx2hcLZ0X5/83Hq2kjmdlQYGgD93fIPi8h1Kg755xzzrkc\nsogdVVam1lBz7pxzzjnnXC60qJlz55xzzjnXOrTUmnOfOXfOOeeccy4RPnPunHPOOedypyU1NSnm\nM+fOOeecc84lwmfOnXPOOedc7ni3Fuecc84559xK5TPnzjnnnHMud1pqzbkPzp1zzjnnXO601MG5\nl7U455xzzjmXCJ85d84555xzudMy58195tw555xzzrlkqKXW66RM0slmdmPsHA3JQ0bIR848ZIR8\n5MxDRshHzjxkhHzk9IxNJw8585AR8pPT1eUz53GcHDtAI+QhI+QjZx4yQj5y5iEj5CNnHjJCPnJ6\nxqaTh5x5yAj5yelq8cG5c84555xzifDBuXPOOeecc4nwwXkceagBy0NGyEfOPGSEfOTMQ0bIR848\nZIR85PSMTScPOfOQEfKT09XiC0Kdc84555xLhM+cO+ecc845lwgfnDvnnHPOOZcIH5w755xzzjmX\nCB+cNxNJpzfmmGsZJHWJnWF58pARQNLvJfWNnaMhkq5qzLHYJHWVNFjS/pK6xs5TH0nbSjpN0s8l\nbRs7j3N54OOMlsMXhDYTSZPNbNtax6aY2TaxMpUi6VvAhkBF4ZiZPRsvUWmSdgZ6UDPnsGiBapH0\nFvAKcBvwuCX4RMtDRgBJJwLHER7r24C7zWxe3FQ11fP8nmpmW8bKVFv2e/w18BQgYFfgEjO7NWqw\nWiT9GjgUeDA7dAAwwswui5eqLklrAMdQ93XotFiZCiQtAOp9PptZp2aMU5Kkgxq638webOj+5iLp\nzIbuN7NrmyvL8uRlnOGWzwfnK5mkw4EjgAHAc0V3dQSqzOy7UYKVkM30/RCYDlRmh83MBsdLVZek\nO4DehIFlcc7ob4oFkgR8Dzge6AfcB9xuZm9GDVYkDxmLSdqUMEg/HHgBuMnMno6c6RTgVKAX8E7R\nXR2BF8zsqCjBSpA0E9jZzP6T3e4CjDezTeMmqynLuZWZfZXdbge8kmDO8cBLwDSgqnDczIZGC1WL\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x18739f70b00>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "cols=trainingData1.columns\n",
    "data_corr=trainingData1.corr().abs()\n",
    "plt.subplots(figsize=(13,9))\n",
    "sns.heatmap(data_corr,annot=True)\n",
    "sns.heatmap(data_corr,mask=data_corr<1,cbar=False)\n",
    "plt.savefig('bike_corr.png')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "instant and mnth = 1.00\n",
      "temp and atemp = 1.00\n",
      "registered and cnt = 0.93\n",
      "season and mnth = 0.83\n",
      "instant and season = 0.83\n",
      "atemp and cnt = 0.78\n",
      "temp and cnt = 0.77\n",
      "casual and cnt = 0.71\n",
      "atemp and registered = 0.71\n",
      "temp and registered = 0.70\n",
      "weathersit and hum = 0.64\n",
      "atemp and casual = 0.58\n",
      "temp and casual = 0.58\n",
      "season and registered = 0.57\n",
      "workingday and casual = 0.54\n",
      "season and cnt = 0.54\n"
     ]
    }
   ],
   "source": [
    "threshold = 0.5\n",
    "corr_list = []\n",
    "size = data_corr.shape[0]\n",
    "\n",
    "for i in range(0, size): \n",
    "    for j in range(i+1,size): \n",
    "        if (data_corr.iloc[i,j] >= threshold and data_corr.iloc[i,j] < 1) or (data_corr.iloc[i,j] < 0 and data_corr.iloc[i,j] <= -threshold):\n",
    "            corr_list.append([data_corr.iloc[i,j],i,j]) \n",
    "\n",
    "   \n",
    "s_corr_list = sorted(corr_list,key=lambda x: -abs(x[0]))\n",
    "\n",
    "for v,i,j in s_corr_list:\n",
    "    print (\"%s and %s = %.2f\" % (cols[i],cols[j],v))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由相关性得知，temp和atemp高度相关，可以二中取一。由于需预测的cnt和atemp相关度更高，所以若取一，则取atemp。  \n",
    "\n",
    "season和mnth也高度相关，亦可二中取一。由于需预测的cnt和season相关度更高，所以若取一，则取season。  \n",
    "\n",
    "instant 和season也高度相关，同理弃instant取season。\n",
    "\n",
    "weathersit和hum也有很高的相关性，符合常理，由于原始数据中的特征数不是很多，暂时不去掉其一。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 2.4 数据预处理和特征工程"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>season</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.363625</td>\n",
       "      <td>0.805833</td>\n",
       "      <td>0.160446</td>\n",
       "      <td>985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.353739</td>\n",
       "      <td>0.696087</td>\n",
       "      <td>0.248539</td>\n",
       "      <td>801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.189405</td>\n",
       "      <td>0.437273</td>\n",
       "      <td>0.248309</td>\n",
       "      <td>1349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.212122</td>\n",
       "      <td>0.590435</td>\n",
       "      <td>0.160296</td>\n",
       "      <td>1562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.229270</td>\n",
       "      <td>0.436957</td>\n",
       "      <td>0.186900</td>\n",
       "      <td>1600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   season  holiday  weekday  workingday  weathersit     atemp       hum  \\\n",
       "0       1        0        6           0           2  0.363625  0.805833   \n",
       "1       1        0        0           0           2  0.353739  0.696087   \n",
       "2       1        0        1           1           1  0.189405  0.437273   \n",
       "3       1        0        2           1           1  0.212122  0.590435   \n",
       "4       1        0        3           1           1  0.229270  0.436957   \n",
       "\n",
       "   windspeed   cnt  \n",
       "0   0.160446   985  \n",
       "1   0.248539   801  \n",
       "2   0.248309  1349  \n",
       "3   0.160296  1562  \n",
       "4   0.186900  1600  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#根据数据探索的结果，进一步去掉一些不必要的特征temp,instant,mnth\n",
    "trainingData1=trainingData1.drop('instant', axis = 1)\n",
    "trainingData1=trainingData1.drop('temp', axis = 1)\n",
    "trainingData1=trainingData1.drop('mnth',axis = 1)\n",
    "\n",
    "#根据作业说明弃casual, registered\n",
    "trainingData1=trainingData1.drop('casual',axis = 1)\n",
    "trainingData1=trainingData1.drop('registered',axis = 1)\n",
    "\n",
    "trainingData1.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "y_train=trainingData1['cnt'].values\n",
    "X_train=trainingData1.drop('cnt',axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "同样的对测试数据(2012)做处理，并分好X和Y。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "\n",
    "testData1=testData.drop('yr',axis = 1)\n",
    "testData1=testData1.drop('dteday',axis = 1)\n",
    "\n",
    "#根据数据探索的结果，进一步去掉一些不必要的特征temp,instant,mnth\n",
    "testData1=testData1.drop('instant', axis = 1)\n",
    "testData1=testData1.drop('temp', axis = 1)\n",
    "testData1=testData1.drop('mnth',axis = 1)\n",
    "\n",
    "#根据作业说明弃casual, registered\n",
    "testData1=testData1.drop('casual',axis = 1)\n",
    "testData1=testData1.drop('registered',axis = 1)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "y_test=testData1['cnt'].values\n",
    "X_test=testData1.drop('cnt',axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xiaomeng\\Anaconda3\\lib\\site-packages\\sklearn\\utils\\validation.py:444: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.\n",
      "  warnings.warn(msg, DataConversionWarning)\n"
     ]
    }
   ],
   "source": [
    "\n",
    "#数据标准化\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "ss_X =StandardScaler()\n",
    "ss_y=StandardScaler()\n",
    "\n",
    "x_train=ss_X.fit_transform(X_train)\n",
    "x_test=ss_X.transform(X_test)\n",
    "\n",
    "\n",
    "y_train=ss_y.fit_transform(y_train.reshape(-1,1))\n",
    "y_test=ss_y.transform(y_test.reshape(-1,1))\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "## 3、确定模型类型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.1 正则化的线性回归（L2正则 --> 岭回归）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from sklearn.linear_model import  RidgeCV\n",
    "\n",
    "#设置超参数（正则参数）范围\n",
    "alphas = [ 0.01, 0.1, 1, 10,100]\n",
    "#n_alphas = 20\n",
    "#alphas = np.logspace(-5,2,n_alphas)\n",
    "\n",
    "#生成一个RidgeCV实例\n",
    "ridge = RidgeCV(alphas=alphas, fit_intercept=True,normalize=False,store_cv_values=True)  \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#模型训练\n",
    "ridge.fit(X_train, y_train)    \n",
    "\n",
    "#预测\n",
    "y_test_pred_ridge = ridge.predict(X_test)\n",
    "y_train_pred_ridge = ridge.predict(X_train)\n",
    "\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "结果可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>coef</th>\n",
       "      <th>columns</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>[3.78796824621]</td>\n",
       "      <td>atemp</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>[0.269840154354]</td>\n",
       "      <td>season</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>[0.0186294645554]</td>\n",
       "      <td>weekday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>[0.0116456187093]</td>\n",
       "      <td>workingday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>[-0.203172298965]</td>\n",
       "      <td>holiday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>[-0.340837256304]</td>\n",
       "      <td>weathersit</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>[-0.665500369686]</td>\n",
       "      <td>hum</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>[-1.38898158862]</td>\n",
       "      <td>windspeed</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                coef     columns\n",
       "5    [3.78796824621]       atemp\n",
       "0   [0.269840154354]      season\n",
       "2  [0.0186294645554]     weekday\n",
       "3  [0.0116456187093]  workingday\n",
       "1  [-0.203172298965]     holiday\n",
       "4  [-0.340837256304]  weathersit\n",
       "6  [-0.665500369686]         hum\n",
       "7   [-1.38898158862]   windspeed"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "columns=X_train.columns\n",
    "fs = pd.DataFrame({\"columns\":list(columns), \"coef\":list((ridge.coef_.T))})\n",
    "fs.sort_values(by=['coef'],ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of RidgeCV on test is -0.680907433155\n",
      "The r2 score of RidgeCV on train is 0.755822095914\n"
     ]
    }
   ],
   "source": [
    "# 评估，使用r2_score评价模型在测试集和训练集上的性能\n",
    "\n",
    "print (\"The r2 score of RidgeCV on test is\",r2_score(y_test.tolist(), y_test_pred_ridge.tolist()))\n",
    "print (\"The r2 score of RidgeCV on train is\", r2_score(y_train.tolist(), y_train_pred_ridge.tolist()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "在测试集的R2 Score为负，说明模型有误。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nLI04noa0JEmF8pq0JBWorW37b2/QoEGMHz+edevWccABB/CDH/yAoUOHbvO+zj//fD7xiU8wbty4\nzebfeOONzJ07l29961vbvE2AIUOGsGbNmrrWnTJlCldddRWtra2b5s2dO5ebb76Za665pkf77w/2\npCVJALz5zW9mwYIFLFy4kGHDhnHttdf2aDvXX3/9FgFdgtbW1j4P6PXr1zd0e4a0JGkLkydPZtmy\nZZteX3nllRx99NEcccQRXHHFFQC8+uqrTJs2jSOPPJLDDz+c22+/Haj1YjcOAf3973+fgw8+mEmT\nJvHwww9v2t4555zDXXfdten1kCFDAFizZg1Tp07lqKOOYvz48dxzzz1b1LZ8+XKOO+44JkyYwOGH\nH84vf/nLutr00EMPcfLJJwPQ1tbGueeey5QpUzjwwAM3C+9bbrmFSZMmMWHCBC688MJNwXvRRRfR\n2trKYYcdtukzgNqQ15deeilHHXUUd955Z1211MvT3ZKkzaxfv57Zs2dz3nnnAXD//fezaNEiHnvs\nMTKTU045hTlz5rBq1Sr22WcffvaznwHw0ksvbbad5cuXc8UVVzBv3jz22GMP3vOe9zBx4sSt7nvw\n4MHcfffd7L777jz//PMcc8wxnHLKKZvdhPXDH/6QE044gc9+9rOsX7+e1157rUftfOaZZ3jwwQd5\n5ZVXeMc73sFFF13E4sWLuf3223n44YdpaWnh4osv5tZbb+Xss8/mK1/5CsOGDWP9+vVMnTqVxx9/\nnCOOOAKA4cOHM3/+/B7VsTWGtCQJgD/96U9MmDCBZcuWceihh/K+970PqIX0/fffvylg16xZw6JF\nizj22GP55Cc/yaWXXsrJJ5/Mscceu9n2Hn30UaZMmcKIEbU/+HTaaafxu9/9bqs1ZCaXX345c+bM\nYaeddmLZsmWsWLGCvffee9M6Rx99NOeeey5r167l1FNPZcKECT1q77Rp09hll13YZZddGDlyJCtW\nrGD27NnMmzePo48+etNnMnLkSADuuOMOZs2axbp161i+fDlPPfXUppA+7bTTelRDdzzdLUkC/v2a\n9JIlS8jMTdekM5PPfOYzLFiwgAULFrB48WLOO+88Dj74YObPn8/48eP53Oc+xxe/+MW697Xzzjuz\nYcMGADZs2MCf//xnAG699VZWrVrFvHnzWLBgAaNGjdriu8bHHXccc+bMYd999+Wcc87h5ptv7lF7\n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\nt8hbrVJwxgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1873a7ea978>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "f, ax = plt.subplots(figsize=(7, 5)) \n",
    "f.tight_layout() \n",
    "ax.hist(y_train - y_train_pred_ridge,bins=40, label='Residuals Linear', color='b', alpha=.5); \n",
    "ax.set_title(\"Histogram of Residuals\") \n",
    "ax.legend(loc='best');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "残差符合均值为零的高斯分布。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nroCObwUAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1873aff0cc0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(4, 3))\n",
    "plt.scatter(y_train, y_train_pred_ridge)\n",
    "plt.plot([-3, 3], [-3, 3], '--k')   #数据已经标准化，3倍标准差即可\n",
    "plt.axis('tight')\n",
    "plt.xlabel('True count in training set')\n",
    "plt.ylabel('Predicted count in training set')\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAARgAAADQCAYAAADcQn7hAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJztnXl8VOX18L8nyQBJWIIsInGjVkGRrURBcaloi1rRREXQ\nau0PrfZ9rQpVFFzRn7xiccHaulvUghQVDFsVEaHWDQmEHRHFskQELARZAmQ57x/3TphMZrmz3LmT\n8Hw/n/lklnuf58xk7pnznHOec0RVMRgMBjfI8FoAg8HQeDEKxmAwuIZRMAaDwTWMgjEYDK5hFIzB\nYHANo2AMBoNrGAVjMBhcwygYg8HgGkbBGAwG18jyWoBYaNu2rR5//PFei2EwHPYsXrz4B1VtF+24\nBqVgjj/+eEpKSrwWw2A47BGRDU6OM0skg8HgGkbBGAwG1/BMwYhIMxH5QkSWicgqEXnIK1kMBoM7\neOmDOQD0V9U9IuIDPhaRd1X1cw9lMhgMScQzC0Yt9tgPffbNFKcxGAJYt24dFRUVXosRN576YEQk\nU0SWAtuAuaq6MMQxN4lIiYiUbN++PfVCGgwe8o9//IO77rrLazHiRtKhop2I5AHvALeq6spwxxUU\nFKgJUxsaOzU1NWzatInjjjuOmpoatm3bRocOHbwWqw4islhVC6IdlxZRJFUtB+YDF3oti8HgJXv2\n7GHQoEGcdtppbN++nYyMjLRTLrHgZRSpnW25ICLZwC+AL72Sx2Dwmm+++YYzzjiD4uJiRo4cSdu2\nbb0WKWG8jCIdBbwmIplYiu5NVZ3loTwGg2fMnTuXwYMHAzBnzhwuuOACjyVKDp4pGFVdDvTyan6D\nIZ144YUXyM/PZ/r06fzkJz/xWpyk0aD2IhkMjYmKigrKy8s56qijmDBhAiJC8+bNvRYrqRgFYzB4\nwMaNGykqKkJEWLhwIS1atPBaJFeI6uQVkUFOnjMYDM746KOPKCgoYN26dTz44INkZmZ6LZJrOIki\njXL4nMFgiICq8uyzz3L++efTunVrvvjiCwYOHOi1WK4SdokkIhcBFwP5IvLngJdaAlVuC2YwNDYO\nHDjAc889x4ABA5g0aRKtWrXyWiTXieSD+Q4oAS4FFgc8vxsY7qZQBkNjYsuWLbRs2ZLc3FzmzZtH\nmzZtGvWyKJCwCkZVlwHLROQN+7hjVXVtyiQzGBoBCxcupKioiAEDBjBhwgTat2/vtUgpxYkP5kJg\nKfAegIj0FJEZrkplMDQCJkyYwDnnnEOzZs0YPvzwNPqdKJjRwOlAOYCqLgU6uSiTwdCgqays5NZb\nb2Xo0KGcffbZLFq0iO7du3stlic4UTCVqror6Dnvt2AbDGnK999/z+TJk/njH//Ie++9R5s2bbwW\nyTOcJNqtEpFrgEwRORG4DfjUXbEMhobH119/zQknnMAxxxzD6tWrDzt/SyicWDC3Al2xSlxOBn4E\nhrkplMHQ0Jg8eTLdu3dn/PjxAEa52ERVMKq6T1XvVdXTgD7AY6q6333RDIb0p7q6mrvvvptrrrmG\n3r17c80113gtUlrhZKvAGyLSUkRygRXAahEZ4b5oBkN6s3PnTi655BL+9Kc/8fvf/5558+Zx5JFH\nei1WWuFkiXSKqv4IFALvYkWQrnNVKoOhAbBy5Uo++ugjXnjhBZ577jmaNGnitUhphxMnr89uK1II\n/EVVK0Uk4SiSiBwDvA4ciRWVelFVn050XIPBbdatW8eJJ57I2Wefzbfffmv8LRFwYsG8APwHyAU+\nEpHjsBy9iVIF3KGqpwB9gVtE5JQkjGswuEJNTQ2jR4+mS5cufPDBB4Bx5kYjqgWjqn8Gajc7ishG\n4LxEJ1bVLcAW+/5uEVkD5AOrEx3bYEg2u3fv5je/+Q3FxcVcf/31nHXWWV6L1CCIueCUWn1Okrqb\nWkSOxyqfGbIvEnATwLHHHpvMaQ0GR6xbt47CwkLWrl3L008/za233oqIeC1Wg8DzinYi0hyYCgyz\nncl1UNUXgRfB6ouUYvEMBj788EO2bt3K3LlzOe+8hI33wwonYeqmTp6LB9t5PBWYpKrTkjGmwZAM\nVJWvvvoKgJtuuok1a9YY5RIHTpy8nzl8LibEsjFfAdao6pOJjmc4PCguLaPf2A/pNHI2/cZ+SHFp\nWdLn2LdvX23i3IYNGxAR2rVrl/R5DgciVbTrgOV0zRaRXoB/0dkSyEnC3P2w8mlW2P2pAe5R1X8m\nYWxDI6S4tIxR01ZQUVkNQFl5BaOmrQCgsFd+Uub4z3/+Q1FREcuWLePRRx81fr8EieSDGQD8Fjga\neIJDCmY3cE+iE6vqxwFjGgxRGTdnba1y8VNRWc24OWujKpji0jLGzVnLd+UVdMzLZsSAzvXOmT9/\nPoMGDaKqqorZs2dz0UUXJf09HG5Eqmj3GlbnxStUdWoKZTIYQvJdeUVMz/txavm8/fbbtG/fnuLi\nYk466aQkSX144ySKdLSItMSyXF4CfgaMVNX3XZXMYAiiY142ZSGUSce87IjnRbJ8Ljy5DVu2bKFT\np0489dRT7N+/n5YtW9Ybw4kFZKiPEwUzVFWfFpEBQBssv8nfAaNgDCnBf3GXlVcg1K12lu3LZMSA\nzhHPD2fhbNy0iXPPPZcffviB1atX07Rp05D7ieL1/Ril5EzB+P0kFwOvq+oqMVlGhhQRfHEr1CqZ\nfIcXbSjLZ//mNeyY8SjlepDXX3+dpk2b1s4XrBTCWUAPzVwVdu5UOKQbAmIl5kY4QGQCVjSpE9AD\nyAQWqGpv98WrS0FBgZaUlKR6WoOH9Bv7YchlUX5eNp+M7O9ojOCLffeyOex4/zk6dMxn1FN/Y8rX\nlpWTl+Njz/4qKmsOXRPZvsx6yiWQ8YN7hlQYyZA7nRGRxapaEO04J3kwNwAjgdNUdR/QBPifBOUz\nGBwRr2M3kMJe+Tx6eTfy87KhppqqLxfQ8/R+jJs4m+eWHaSsvAIFdu6rrKNcwLJUMiMY7OPmhO7k\nE06+svIK1/J30hEnSyQFTgEuAR7G2lXdzE2hDAY/8Tp2gzkz38f0G7vz8aYDPJr9CFsr4MH3NlAd\nxYIHIh4TTpGEkxsOr+WSEwvmWeAM4Gr78W7gr65JZDAEMGJAZ7J9dbsgOnHsBrJ48WIKCgq4sGgI\no6atYOuBTMjIdKRcwFrW5GX7Qr4WrOj8mcZ+h3Q4/FGsxo4TBdNHVW8B9gOo6k6sZZLB4DqByxvB\nutgfvbyb41/+SZMmcdZZZyEiVPYaFNGfEgq/Mht9adeoiu6+4hUMn7K01nKJpr5iWeY1VJwskSpF\nJBP78xKRdkCNq1IZDAEU9sqPeSlRVVXF3XffzZNPPsm5557LW2+9xelPfBHTGJkidZRZyYYdTF64\niWpVMkW4ovchuYpLy5j0+caYGoYFWj+NNaTtxIL5M/AO0F5ExgAfA4+6KpXBkCC7du3i7bff5g9/\n+ANz586lXbt2MfttalTrKJCpi8tql1XVqkxdXFbrrB03Z21MysWXKbXWT3FpGSPeWlbrbC4rr2DY\nlKUc7+KGzlThpKLdJBFZDJyPlYJQqKprXJfMYIiDr776ik6dOtGmTRtKS0s54ogjal8bMaBznXB1\nNAIVUrR9ULEud7IypFZ5jZ6xql70yk+gQ9gvR0OycqIqGBH5u6peB3wZ4jmDIW2YOnUq119/Pbff\nfjtjxoypo1zgUMTGnxUciWD/SrRweaSoUSgqKmvo9fD7lO+rjGr5VFRWM2zK0jrPRYpEFZeW8dDM\nVezcVwlAXraP0Zd29UQZOVkidQ18YPtjUp5kZzCEo6amhvvuu48rr7ySbt26ccstt4Q9trBXPp+M\n7B8xwuN3JAO1tWcywuTC+K2cUNGuaOx0oFwiUVFZzR1vLquzhCouLWPE28tqlQtAeUUlI95a5slS\nK1I9mFFYZRmyRcRfylKAg9glLA0Gr9m1axfXXnsts2bNYujQoTz77LO1af+BBDtRW2X7KK+orHec\nP9M2OPs3XEj7vC6HClE182XEHKVKlGrVOpbMuDlrqayuL2tljToqa5FswlowqvqoqrYAxqlqS/vW\nQlXbqOqoZEwuIn8TkW0isjIZ4xkOPzZu3Mi///1v/vKXv/Dyyy+HVS6jpq2o40Tde7AKX0ZdqyRw\nWRTK5xKK+V9urx0/0GpIJYE5NZF8QV6ExZ30pk6KMgnDq8CFLo5vaKSsWGH9anfr1o1vv/2WW265\nJWyl/1DKorJaad4sK2x+jdOL8bvyCsfKyE0CfUHhiDWKlgyc+GBcQ1U/AnZ4KYOhYaGqjBkzhh49\nejBlyhQAWrduHfGccMqifF8ln4zsz7djf8UnI/vXWT44vRg75mWnRcJchojlfxnQGV9mfUXry5CY\nsp+TJlfKZzQY4mTPnj1cddVV3HfffQwZMoSBAwc6Oi+csoikRJw4bf1LKi8sg2CqVRk+ZSnDpiwl\nt0kWuU0OyZ6X7WPcoB6eRJEc9UWyI0dHBh6vqhvdEipobtN4zcD69espLCxk1apVjBs3jjvuuMNx\n87NQ+S/R9jP5L8bg8HAggUuq4VOWJhQRSgb++csrKsn2ZYYtJQGpyxx20hfpVmArMBeYbd9mJV2S\nMKjqi6paoKoFpnXE4cvy5cspKyvj3Xff5c4774yps2K8+5kKe+VbJR5CkJ+XXXt+Ya98zjzhiJDH\neUWkzZShnN6jpq1wJYztpODU11gbHv+b9NmpbRs7S1VPjXasKTh1eKGqrFixgu7duwNQXl5OXl5e\nSmUIDleDZf0EK6hwBaa8JpQVE0lWp1UCnRaccrJE2gTscnBczIjIZODnQFsR2Qw8qKqvuDGXoWFR\nUVHBzTffzOTJk1myZAndunXzRLn4I0SZIlSrhr0A08HRG4rhU5ZSsmEHBccdUbskimRSJLtWjRMF\nsx5YICKzgQP+J5PRjVFVr45+lOFwY9OmTVx++eWUlJTw8MMP07Vr1+gnJZlQiXbZvkzO69KOcXPW\nMnzK0jq+i1i3CqQKBSZ+vpGJnzt3mTrtNeUEJwpmo31rgqkDY3CZjz/+mCuuuIKKigqmT5/OpZde\n6okc4TY3BpZkCPy1P69Lu5jLNaQzybLInOymfigpMxkMDpg3bx6tWrViwYIFnHzyya7PV1xaxugZ\nq+psG2id4wublRusQPzdBfbsr2o0ygWSl5QXNookIuPtvzNFZEbwLSmzGwzAwYMHWb16NQD3338/\nJSUlKVMuI95aVm9PUqwp/6GKhcdCti+TbF/qU9Ly87IZP7hnwiVJIxHJgvm7/ffxpMxkMITg+++/\n58orr+Srr77i66+/pmXLliE7K7rBuDlrE1IMiRDsNAb445SlKSsV6VcigSUs3MiJidSberH9919J\nmclgCGLRokUUFRWxc+dOJkyYUEexJDMRLNxYXkV+Wuf4ULUS4srKK3ho5ip+1f0o6rWtjIPcJpnU\nqFJRGV5Vtc7x8eDArnXyeNzK8nWUyWswJJvXXnuNm2++maOOOopPP/2UHj161L6WzK6IkcbyKvIT\nvATbua8ypihPIJkZwhP2NoBD7zW0chHg132P5ZHCbnHNFQ9mL5Ih5agqM2fO5Mwzz2TRokV1lAtE\nLk8ZK5HGGjGgc72SDQ2NJwL2GEXa1Z2fl81Tg3umVLmAs5KZg1T1rWjPGQyhCFyetPMd5Hdn5PO7\ni0/n9ddfx+fz4fPV7zeUjG6OTsYKrIkbqvhUupMpUseiC/deBTxrV+tkiTQKCFYmoZ4zGOoQuDw5\nuG09S6aN4bYJebSd8QFFPzs67HnxdHMMV4fWyVi5TbMor6hMhgskpVSr0mnk7Fq/UrK6YCaTSGHq\ni0TkGSBfRP4ccHsVqEqZhIYGi99k37vmI77/+wioriKv/008/v5XEc+LtZtjpDq053VpV28swfLF\n9Hr4/dp2IdCwlIufwM2Kod5rMkPO8RDJB/MdUILV0XFxwG0GMMB90QwNnbIde9j5r1f5YcafaHLk\nCRx1/XiaduwcdakT6+7n0TNWha1DO3v5lkON76kbqEk0fyWdqKisZv6X2xPqgukGkcLUy4BlIvKG\nqja8BarBczo0z+K7b0po3uNCjvjFzUim5W9xYrI7DZ0Wl5ZF9J/4rZpPRvZP2x3PycLvV0qnXklO\nfDCni8ho4Dj7eAFUVX/ipmCG5OBFS9K1a9eSn5/PyIE9uGvPExzMOFSIO9kmu5PI0jB7R3G67niO\nBSF+H5UXTducKJhXgOFYyyNvKxsbYiKZ+SROmTFjBtdeey1DhgzhxRdfBPrU+2KDVZPEyZc92oXh\nVGlM/HwjTbMyOFCVPm3VRSA7K4N9EZLigvF/BrFU6PPie+DHiYLZparvuiqFwRWitTtNJjU1NYwZ\nM4YHHniA3r17c//99wP1lzqxfNmdHBtLstyBqhp8mRLSX+MF3z76K8B5sSqBuNL7U/k9CMaJgpkv\nIuOAadStB7PENakMSSGZ+SSR2L17N7/97W+ZNm0a1113HS+88ALZ2aHN9Vi+7E6OHTGgMyPeXuZc\naUSp4OgFTnpm+7Nw40nvT9X3IBROFEwf+29geTwFEs7cEZELgaeBTOBlVR2b6JiGQ7idF+Ffvmzc\nsIGtcxcw9I7RvDzugYj1cmP5skc71j9/LBZJDKsRV2mdcyjBMJRFcl6Xdsz/cntSfCZe5sc4qQdz\nnhsT250K/gr8AtgMLBKRGaq62o35DkfiqabvlOLSMob/dRo1bY4ns1V7OtzwPJ9mt2D60u8iXgix\nfNkjHRuqVm66kSlCkywJuTco2JByM/rj5vcgGk66CjwQ6paEuU8HvlbV9ap6EPgHcFkSxjXYxFtN\nPxqqyrB7H+Y/fxvGnlLLPZfRNMfRfqHzurSr13g+3Jc9XG+iHXsP8NDMVWmtXABqVNkfxmTalcKt\nCW59D5zgZIm0N+B+M+ASYE0S5s7HKijuZzOHlmO1mL5I6cW+ffu48cYb2fDuZHI6n0XuqefXeT3S\nur64tIypi8vqZMwKcEXv8L/eofYiVlTWRCxHkC74rbJQVphiOXdTFS72Kj/GyRLpicDHIvI4MMc1\nierP/yLwIlhtS1I1b2PAacTGaY7Ehg0bKCoqYunSpRz7y6HQs6ievyXSuj6U01Y51EB+3Jy1lJVX\n1BZjasgEWmXhlnKpDBd7RTz1YHKA8DvVnFMGHBPw+Gj7OUOScBKFiSVsvGHDBjZu3MjMmTOp7Ngz\n7Lo+1gJP/jkDK/g3ZEK1NvErz2BSFS72CiflGlZwaPtGJtAOeDgJcy8CThSRTliKZQhwTRLGNdg4\nidhEU0KqyuOT/knxZqvJ+09vfY3Kjj3D5mIAcRV4isefkpftQyT2Grpu4m8yH6gw/MuTTiNnh9xQ\n2RgyjMPhxIK5JOB+FbBVVRPeTa2qVSLyB6zlVibwN1Vdlei4hkM4idhEUkIHDhzgV4OvZ970KRz5\n68dodnRXvq+gjoUTqmtgpAJPyerh7MsQLulxFG8sdL9Fem6TTPYdrHYkd2WNhrVI0rGcgttEjSKp\n6gYgDxgIFAGnJGtyVf2nqp6kqieo6phkjXs4U1xaRr+xH9Jp5Gz2HqjCl1nXRxIcsQn35W6bsZef\n//znzJs+hVZnDKZp/qEq/5GiRdEKPCVDuWT7Mhg3qAezlm0hFZuh83Ka8NTgno6PD/cZxFqGojHg\nJEx9OzAJaG/fJonIrW4LZoid4Kbm5RWVoFZSV7jwZMhQ8Nav+Oal21ixYgXtCkeRd851iNT9qpSV\nV9Bv7If1GqaHU1j+58M1k4+FI3KbUtgrP2VV6PzKMTA5LhLhPoNkhosDf0hC/R/SBSdLpBuAPqq6\nF0BEHgM+A55xUzBD7ITyp1TWKDlNsih94JchzwnlS+mRdZA5LXMp/nAuv5+9PazfJJRDOFpSl5O0\n+Gi45bMQCb2TwK8wHhzYNars0SySZISLvdy8GCtOin4LdXdRV9vPGdKMePecFPbKZ8EdZ/P2oA58\nMrI/zz5yN8uXL6dbt25hk938BC+Xov1K+193ag2Ewn/BJzJGKJ66KnITslDv7dq+x6Y8gS2ZRdHd\nxokFMwFYKCLv2I8LsUo4GNKMeJ2I27dvZ9CgQZSUlPD111/ToUMHcnNzgboWTjhLJliBRfuVLuyV\nz7g5a+OK/vgb0Pcb+2FSo0f5edmOdimnQ0EnLzcvxoqTRLsnRWQBcJb91P+oaqmrUjVCUlHwJ549\nJ0uWLKGoqIht27bx0ksv0aFDh3rH+C+qcGUF4omCxHMxtM7xsb+y2nEPocwModqBFzjYSkmVAon3\nO9GQolFO8mD6Aqv85RlEpKWI9FHVha5L10hI1Zo51johb7zxBjfeeCNt27bl448/pnfv3hHHT8am\nufuKVzB54aaYo0nZvgz2R9gi0DrHR06TrHo5OZEsL7A2JIZb1gQrgGTucE7kO+Hl5sVYEY2SNSki\npcDP1D5QrHBCiar+LAXy1aGgoEBLSkpSPW3ChPvlz8/L9qxfDcAtt9zCypUreeutt2jfvr2jcxKx\nxO4rXhF3B8MMIWpI2l9OMlimcAluAOMH9wyrXJw4dOP1uST6nfCqBKYfEVmsqgXRjnPigxEN0EKq\nWiMijbLlrFv/tHRaM+/YsYNt27bRpUsXxo8fDxCy+Vk4gq0kv2Mx0ucUuM8oXpzkuwS28AiUKdyS\nIi/bF1MVuGASSfNP9DuRDr4gJziJIq0XkdtExGffbgfWuy1YqgnOIfF/UZORXxAtNyTZhMuRWLly\nJaeffjqXXXYZVVVVYTsrRhs7ls8p8PhEyIxQxCqY4IhKuAS30Zd2rXeu/7NzKm+8PxKp/k54hRMF\n83vgTKz9Qv6SCje5KZQXuBn6S2UGZzgFMPKJl+nbty979+7l1VdfJSsrPiM01s/JiSUQjWxfJlf3\nOSZiuDyYwAvfaYJbPMowXoVwuGT1OokibcPaiNiocXMZE6vzNRGCL2jVGrZ8OInHPp1Mnz59mDZt\nGh07dox53GjLHLc+v8CdyQXHHeF4qRV84TtZUsSqDBNRCKn8TnhJo/SlxIPbob9UrZnrXdA1Nezf\nvJLm3S5gwYKZNGvWLOYxnTg8M0Rq+yQHRlsyEqjtEty03f8ZHj9ydtRz47nwIynD/CRHkaDh+FES\nwSgYm4YU+ouEX1FW7igjo2kumbl5tL/yQY5umxeXcgFnv+x+JVJWXlEnUpRIbZdwyj0v2xdxH1Ik\n5220+dIx2teQceKDOSzwsm5pMhkxoDPVG5aw5fU/suP9ZwHIzcnlrgu7xDVecWlZUtqtxrO3JJxy\nH31pV3yhamkS3nnrdL7DwS+SSsJaMCLyx0gnquqTyRfHW9LZZHUSQldVvpzzd8qmPEhOhxNo3f/G\nkNXVYplzxNvLkiJ/rHbMtQE9gIIJ3r7gL7GZyHsNHrcx+0VSSaQlUgv7b2fgNGCG/Xgg8EUik4rI\nIGA0cDJwuqo2vOy5FOIk63Pv3r0MHTqUN998kyFDhvDKK6+Qk5OT0Lyx9hxKJo8UdouoVN36MUjn\nH5mGSFgFo6oPAYjIR1iZvLvtx6OB6F62yKwELgdeSHCcwwIntXX379/P4sWLeeyxxxgxYkTE5meR\nCLyovaqMmx+i71E6lyQwhMeJk/dI4GDA44P2c3GjqmuAuC+Cw41IIeCFCxfSq1cv2rRpw4oVK8K2\nbHVCOjQz8/s8vOynbEgeTpy8rwNfiMho23pZCLzmqlQBiMhNIlIiIiXbt29P1bRpRahoiqpSuWwW\n/fr1Y+xYq+NuIsoFkpMUFy/BjvV02l5hiB8niXZjRORd4Gz7KUflGkTkA6D+3n+4V1WnOxXQ9EWq\n3+Bdqw7y3zl/Ze/KeZz+8wEMGzYs4vmhfBlQ35np1cUbKgzckEoSGMLjNA8mB/hRVSeISDsR6aSq\n30Y6QVUvSFw8A1g+h9EzVlFeUUnVjz+wvXgMB7eso1W/a8j8xf/QsmXLsOeG8mWMeGsZCLUKy+/f\naBUlvyQamSLUqMaUXBepbWxjyEs63HFSD+ZBoAArmjQB8AETgX7uimbwU1xaVnvh1xzYQ/WPP9Cu\n6F5yTjqDLT8eiHhuuDq9wVRUVtPMl0G2LzOuZVJg6YJQvhz/636ZooWBTci4ceDEgikCegFLAFT1\nOxFpEfmUyIhIEVbR8HbAbBFZqqoDEhmzseK/WPdvWkmzY06lSbvj6Xjzy2T4mgLRlwyxLHt27qsk\n2xdf7mVw3V0IrxycKgkTMm74OFEwB1VVRcRfcCo30UlV9R3gnagHGnhs9ko2z/oze5a+S7vL7yfn\nxD61ygVg74Gq2lIJoS7oSN0UQxFPU/nAerZ+jHIwgLOKdncCJwK/AB4FhgKTVfXP7otXl4ZW0S5U\nQ/fgbNNIyWRbt27luIL+HNi8mpZ9rrT6E2XUL1ngy5A6PhUAX6aQ2ySL8opKhLqZtKGOT4TxdlMy\ns5w5fEhaRTtVfVxEfgH8iOWHeUBV5yZBxkZNsB8icDOgP2EMwvdxPrp6C0VFRVRu3U7bgSPIPeXc\nsHOF8qlUVmut30ahVsn4dwXPWrYlKY3L/K1DTFKcIRROOjs+pqpzVXWEqt6pqnPt5muGCETKKfEn\njEVKJtu8eTNZWVk8/vqMiMrFKX7lMmJAZ6YuLkuKcsn2ZfLgwK4Nqk+PIbU48ej9IsRzFyVbkMZG\nNOfqd+UV9Y7Rmmr2b15ltSotLGTNmjUMH/LLpDUY89fQTUYynUmKMzghrIIRkf8jIiuALiKyPOD2\nLbAi3HkGi2jRnVbZvjrHVFf8yLY3H2Dr5HtoXbUDoLZ+y4MDu0YsF+nLkHpN7kORIZKU0gv+xLjA\notqhMElxhkgWzBtYO6en23/9t96q+usUyNagidZyVeTQMQe3fcv3rw1n/+ZVdLj4Nh74dd2s1uBa\nNa1zfORlH2poP25QD8Zd2SNqY/lq1YR7/oZKdjN1VAzhiLSbehewS0SeBnYE7KY2jdcc4P91HzZl\nacjXy/dVUtgrn08/mMUTj41AmubQ7abxPPy7wrCJZ9EcpoW98un18PsRW6rGGjcK1dAsVEgaTBTJ\nUB8neTDPAYFN1vaEeM4QAn8P5kh7alrs30afgl5MnTqVo446KqH5ikvLHPdrrhe6zhTQuhEpvxPX\niaIweS8bvm6zAAANeElEQVSGUDhx8tZrvIap5euYUMuHJtX7ufxYqwLGvffey4IFCxJSLsWlZfR6\n+P2w1lIw+XnZPDW4Z53yoOOu7MG4QT0afMlQQ3rhJNFuGrAAy2oB+L/Aeapa6K5o9WloiXZ+ApPp\n8g5uZ9u0/6XmwD7Wr1+fcImFWGu4JNLu1GDw4zTRzjReSwGFvfL5ZGR/njlLWf/K7VTu282UKVMS\nVi4QWw2X1jk+o1wMKcU0XksBqsqYMWN44IEH6NWrF8XFxRxzzDFJ6YUdS65JTpMso1wMKSVSV4G7\nVPVPIvIMIYIPqnqbq5I1MpYtW8Y111zDSy+9RHZ28mrOxrKZ0SS+GVJNJAtmjf234Tk90oT169cj\nInTq1ImJEyfSpEmT2jrE4dLrR89YFZNVE6owUzhM4psh1UTKg5lp/01Z/d3GxNy5cxk8eDDdu3dn\nwYIFNG3atM7r4ayJ8orK2n1CkayawOVVq2wfzXwZlO+rrG3dOnVxmakGZ/CcSEukmUTIy1LVS+Od\nVETGYWUFHwS+warzWx7veOmEqvLkk09y1113ccopp/DKK6+EPM7p0iZUJf3g5VV5RSXZvkyeGtyz\n9jh/o3iT+GbwkkhLpMftv5djFe+eaD++Gtia4LxzgVGqWmXvzB4F3J3gmJ5TUVHBTTfdxMSJE7ni\niit49dVXad68echjY1naBFs7Tlp6mMQ3QzoQaYn0LwAReSIo3j1TRBLyy6jq+wEPPweuTGS8dEFV\nWb16NY888gj33HNPxL5PodLr9x2sCpmJG+w7Cbe8KiuvoNPI2cZiMaQNTjJyc0XkJ6q6HkBEOgEJ\nl80MYCgwJdyLInITdt7Nsccem8Rpk8dnn33GqaeeSosWLfjss89o0qSJo/OCrYxwxbKDfSeRlleK\nKfhkSB+cJNoNBxaIyAIR+RcwH4jciAerL5KIrAxxuyzgmHuBKmBSuHFU9UVVLVDVgnbt2jkQ112K\nS8voN/ZDOo2czZmPzuP39zzKOeecw/333w/gWLmEInjXdLh0/Wg7tcEUfDKkB1G3CgCISFOgi/3w\nS1WN3CvDycQivwVuBs5X1X1OzvF6q0CghaFVlez44Hn2LJtD77POZ96sqbRq1SqlskTrIS3At2N/\nlTKZDIcPSavJKyI5wB+B41T1dyJyooh0VtVZCQh3IXAXcK5T5ZIO+J2r1Xt2sr34/3GgbA0tzxhM\nk4tuSKlygbrLq35jPzRdEA1piZMl0gSscPIZ9uMy4JEE5/0L0AKYKyJLReT5BMdLCX7nqtZUUr1n\nB20vG0nrc65jy48HPZXLFHwypCtOnLwnqOpgEbkaQFX3SaTwiANU9aeJnO8VOdtXsaftyWS1bE/H\n3z2PZFq1cr22FEzBJ0O64qjxmohkYyfdicgJQMI+mIZEZWUld955J6v/9mc6XDKcpl3Pr1Uu6WIp\nmLwXQzriRME8CLwHHCMik7B6Uv/WTaHSiR9++IGrrrqK+fPnM3z4cPpdfTtPzvvGWAoGgwMiKhh7\nKfQlVjZvX6zAxO2q+kMKZPOcpUuXUlhYyPfff89rr73Gb37zGwCuOO04jyUzGBoGERWM3ZP6n6ra\nDZidIpnShj179pCRkcHHH39MQUHUiJzBYAjCSRRpiYic5rokaUJ1dTXvv2/tZDjrrLNYu3atUS4G\nQ5w4UTB9gM9F5Bu78doKEVnutmBesHPnTi655BIGDBjA4sWLAfD5ktNV0WA4HHHi5B3guhRpwOrV\nq7nsssvYsGEDzz//PL179/ZaJIOhwROpHkwzrILfP8VqFfuKqlalSrBUMn36dK699lpyc3OZP38+\n/fr181okg6FREGmJ9BpQgKVcLgKeSIlEHrB9+3ZOPvlkSkpKjHIxGJJI2M2OIrLCjh4hIlnAF6rq\naTfHZG523L17N6WlpZxzzjmAlUxn/C0GgzOS0ReptvJRY1sarVu3jr59+zJw4EB27twJGGeuweAG\nkZy8PUTkR/u+ANn2Y8FKkWnpunQu8N577zFkyBCysrJ45513aN26tdciGQyNlrAWjKpmqmpL+9ZC\nVbMC7jc45aKqPPbYY1x88cUcd9xxLFq0iP79+3stlsHQqHGSB9MoEBE2b97MoEGD+PTTT+nUqZPX\nIhkMjR4neTANmg0bNrBr1y66d+/OU089RWZmZsRi3AaDIXl4YsGIyP/aWcFLReR9EenoxjwLFiyg\noKCA6667jpqaGrKysoxyMRhSiFdLpHGq2l1VewKzgAeSObiq8swzz3DBBRfQtm1b3nrrLTIyDpvV\noMGQNnhy1anqjwEPc4nQQTJWDhw4wA033MBtt93GxRdfzMKFCznppJOSNbzBYIgBz37WRWSMiGwC\nfk0SLZjMzEw2btzI/fffT3FxMS1bNriAl8HQaHDUtiSugUU+wGo5G8y9qjo94LhRQDNVfTDMOIGN\n13pv2LAh6txVVVVkZTV6/7XB4BlOM3ldUzBOEZFjgX+q6qnRjvW6L5LBYLBIxlYB1xCREwMeXoZV\nltNgMDQyvFpHjBWRzkANsAGrLITBYGhkeKJgVPUKL+Y1GAypxSSHGAwG1zAKxmAwuIbnUaRYEJHt\nWD6bdKUtcFj0jLIx77dxE+n9Hqeq7aIN0KAUTLojIiVOQneNBfN+GzfJeL9miWQwGFzDKBiDweAa\nRsEklxe9FiDFmPfbuEn4/RofjMFgcA1jwRgMBtcwCsZgMLiGUTBJRkTGiciXdknQd0Qkz2uZ3EBE\nLhSRtSLytYiM9FoeNxGRY0RkvoisFpFVInK71zKlAhHJFJFSEZkV7xhGwSSfucCpqtod+AoY5bE8\nSUdEMoG/YrUUPgW4WkRO8VYqV6kC7lDVU4C+wC2N/P36uR1Yk8gARsEkGVV9P6AT5ufA0V7K4xKn\nA1+r6npVPQj8A6vsRqNEVbeo6hL7/m6siy7fW6ncRUSOBn4FvJzIOEbBuMtQ4F2vhXCBfGBTwOPN\nNPILzo+IHA/0AhZ6K4nrjAfuwiqpEjemrmQcOCkHKiL3YpnWk1Ipm8E9RKQ5MBUYFlS4vlEhIpcA\n21R1sYj8PJGxjIKJA1W9INLrIvJb4BLgfG2ciUZlwDEBj4+2n2u0iIgPS7lMUtVpXsvjMv2AS0Xk\nYqAZ0FJEJqrqtbEOZBLtkoyIXAg8CZyrqtu9lscNRCQLy4F9PpZiWQRco6qrPBXMJcTq1vcasENV\nh3ktTyqxLZg7VfWSeM43Ppjk8xegBTDX7lz5vNcCJRvbif0HYA6Ww/PNxqpcbPoB1wH97f/pUvvX\n3RAFY8EYDAbXMBaMwWBwDaNgDAaDaxgFYzAYXMMoGIPB4BpGwRgMBtcwCiaNEZE2AWHR70WkLOBx\nE6/lc4qIHCEiIbt32jt2/x3jeENFJFQmtZNz+4tI33jODRon7HsyHMIomDRGVf+rqj1VtSfwPPCU\n/7G9yRCxSPf/4xGEaQ+sqtWqenaM4w0l9FYNJ/TH2hGdKGHfk+EQ6f7FNIRARH5q1yaZBKwCjhGR\n8oDXh4jIy/b9I0VkmoiUiMgXoX69RSRLRJ4SkZV2HZv/az//S9taWiEiL/mtJhHZ7K9zIyJ97b1Z\niMgjIvKKiPxLRNaLyC32FGOBzvZYY0PMXW7fv0BE5tnyrhWR10PIOhjoCUzxW3Iicpo952IReVdE\njrSPHW5/TstFZKKInADcCIywzz0zaOz+IrLMfm2JiOTaz4+0P7vlIvJAtPdkCEBVza0B3IDRWCnb\nAD/F2uVaYD/OAsoDjh0CvGzfnwL0te8fD6wMMfat9nGZ9uMjgBysXdIn2M9NAv5g398M5Nn3+wIf\n2PcfAf4NNAHaA/8FMm15l4Z5X7WyAxcAO4GO9nmL/LIHnfMx0NO+3xT4FGhrP/418KJ9fwvQxL6f\nFyDjsDCyvAv0se83t2W4GHgWEKwf5PeAMyO9J3M7dDObHRsu36hqiYPjLsD6pfU/bi0i2apaEXTM\neFWtBlDVHSLSG/hKVb+xj3kduAFrK0QkZqm1fNsmIjuAqN3/gvhcVb8DEJGlWErx8wjHnwx0BT6w\n32MmlgIEy7qbKCLTgWIHc38CPG1bhlNVdY+I/BKrsFapfUxz4CRgWyxv6nDFKJiGy96A+zVYv7B+\nmgXcF+B0+6JPFlUcWl43C3rtQMD9amL/jsV6vgDLNbQfZwBwLnApcI+IdI80kKo+IiIzsAotfS4i\n59vjP6Kqr9SZVOSnUeQyYHwwjQJVrQF2isiJtsO3KODlDwC/LwQR6RliiLnA78UqhYmIHIG1ifFE\nEfmJfcy1wL/s+/8Betv3r3Ag4m6sDaDJInC81UC+iJwOYPtkutrv5WhV/RCrcFJbrGVfWFlE5ARV\nXa6qjwJLgM5YGzpvCPDHHC0ibV14T40So2AaD3djXQyfcmiJAJZy6Wc7KFcDvwtx7gvA98ByEVkG\nXKWq+7CWRNNEZAWWZfGSffxo4FkRWQREtYxUdSuw2HYWJ8MhOgF42V5CKXAl8KSILMdayvTBsnze\nsJ9bAjyuVrnL6cBVYhWzPjNo3Dv9jm5gD/C+qv4TeBvLolkBvAk0d+E9NUrMbmqDweAaxoIxGAyu\nYRSMwWBwDaNgDAaDaxgFYzAYXMMoGIPB4BpGwRgMBtcwCsZgMLjG/wecDERi0F8C9QAAAABJRU5E\nrkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1873a9aae10>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(4, 3))\n",
    "plt.scatter(y_test, y_test_pred_ridge)\n",
    "plt.plot([-3, 3], [-3, 3], '--k')   #数据已经标准化，3倍标准差即可\n",
    "plt.axis('tight')\n",
    "plt.xlabel('True count in test set')\n",
    "plt.ylabel('Predicted count in test set')\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "由此可见，预测值比实际值总体偏大。稍后分析。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "求最佳参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x187352936a0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 0.1\n"
     ]
    }
   ],
   "source": [
    "mse_mean = np.mean(ridge.cv_values_, axis = 0)\n",
    "plt.plot(np.log10(alphas), mse_mean.reshape(len(alphas),1)) \n",
    "\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()\n",
    "\n",
    "print ('alpha is:', ridge.alpha_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 3.2 正则化的线性回归（L1正则 --> Lasso）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Xiaomeng\\Anaconda3\\lib\\site-packages\\sklearn\\linear_model\\coordinate_descent.py:1094: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n",
      "  y = column_or_1d(y, warn=True)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import LassoCV\n",
    "\n",
    "#设置超参数搜索范围\n",
    "#alphas = [ 0.01, 0.1, 1, 10,100]\n",
    "\n",
    "#生成一个LassoCV实例\n",
    "#lasso = LassoCV(alphas=alphas)  \n",
    "lasso = LassoCV()  \n",
    "\n",
    "#训练（内含CV）\n",
    "lasso.fit(X_train, y_train)  \n",
    "\n",
    "#测试\n",
    "y_test_pred_lasso = lasso.predict(X_test)\n",
    "y_train_pred_lasso = lasso.predict(X_train)\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>coef_lasso</th>\n",
       "      <th>coef_ridge</th>\n",
       "      <th>columns</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>3.693268</td>\n",
       "      <td>[3.78796824621]</td>\n",
       "      <td>atemp</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.273067</td>\n",
       "      <td>[0.269840154354]</td>\n",
       "      <td>season</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.019360</td>\n",
       "      <td>[0.0186294645554]</td>\n",
       "      <td>weekday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.011266</td>\n",
       "      <td>[0.0116456187093]</td>\n",
       "      <td>workingday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-0.095682</td>\n",
       "      <td>[-0.203172298965]</td>\n",
       "      <td>holiday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>-0.317807</td>\n",
       "      <td>[-0.665500369686]</td>\n",
       "      <td>hum</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-0.400458</td>\n",
       "      <td>[-0.340837256304]</td>\n",
       "      <td>weathersit</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>-0.815356</td>\n",
       "      <td>[-1.38898158862]</td>\n",
       "      <td>windspeed</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   coef_lasso         coef_ridge     columns\n",
       "5    3.693268    [3.78796824621]       atemp\n",
       "0    0.273067   [0.269840154354]      season\n",
       "2    0.019360  [0.0186294645554]     weekday\n",
       "3    0.011266  [0.0116456187093]  workingday\n",
       "1   -0.095682  [-0.203172298965]     holiday\n",
       "6   -0.317807  [-0.665500369686]         hum\n",
       "4   -0.400458  [-0.340837256304]  weathersit\n",
       "7   -0.815356   [-1.38898158862]   windspeed"
      ]
     },
     "execution_count": 39,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "columns=X_train.columns\n",
    "fs = pd.DataFrame({\"columns\":list(columns), \"coef_lasso\":list((lasso.coef_.T)), \"coef_ridge\":list((ridge.coef_.T))})\n",
    "fs.sort_values(by=['coef_lasso'],ascending=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of LassoCV on test is -0.71004879944\n",
      "The r2 score of LassoCV on train is 0.752516633888\n"
     ]
    }
   ],
   "source": [
    "print ('The r2 score of LassoCV on test is', r2_score(y_test.tolist(), y_test_pred_lasso.tolist()))\n",
    "print ('The r2 score of LassoCV on train is', r2_score(y_train.tolist(), y_train_pred_lasso.tolist()))\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "r2score与岭回归差不多，稍逊一点。（即此数据集，用岭回归更好一点。）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n8/8BBButGvefEM8AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1873c0c34a8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(4, 3))\n",
    "plt.scatter(y_train, y_train_pred_ridge)\n",
    "plt.plot([-3, 3], [-3, 3], '--k')   #数据已经标准化，3倍标准差即可\n",
    "plt.axis('tight')\n",
    "plt.xlabel('True cnt')\n",
    "plt.ylabel('Predicted cnt')\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1873a5015c0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 0.00275595442729\n"
     ]
    }
   ],
   "source": [
    "mse_mean = np.mean(lasso.mse_path_, axis = 1)\n",
    "plt.plot(np.log10(lasso.alphas_), mse_mean) \n",
    "\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()\n",
    "\n",
    "print ('alpha is:', lasso.alpha_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 4、分析和改进"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "4.1 关于r2score在训练集上是正数，在测试集上是负数  \n",
    "r2score是负数，说明模型的预测结果很不准。我最初想到的原因是特征中有些线性相关的，没去除。但我只保留了一个特征，即atemp，再做回归，仍然得到了负值的r2score。  \n",
    "经过画图分析，原来预测值比真值偏大，就好像有个截距没有去算。于是想到了归一化处理的时候，我们把测试集归一化的时候用的是训练集的平均值。试了一下假如归一化的时候去用测试集的平均值，（当然这样做没有什么意义），那么我可以得到正的r2score。问题果然就出现在测试集和训练集的平均值差异比较大上面。  \n",
    "在群里讨论的时候，介璐说的非常好。我们之所以归一化的时候，一个用fit_transform一个用transform,是因为我们假定测试集和训练集活在同一个世界。实际上他说的意思就是训练集和测试集是属于同一分布，但是如果画出2012年的cnt,我们可以看出两者的分布不太相同。\n",
    "卿老师提供了一种做法，就是将两年的平均值进行计算去矫正均值差异。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of RidgeCV on test is 0.638099937154\n"
     ]
    }
   ],
   "source": [
    "#计算两年的平均值差异，矫正预测结果,矫正后，r2score为正数\n",
    "y_train_mean=y_train.mean() #做完归一化后的y_train的平均值应该是0\n",
    "y_test_mean=y_test.mean()\n",
    "y_diff=y_test_mean-y_train_mean\n",
    "y_test_pred_ridge_adjusted=y_test_pred_ridge+y_diff \n",
    "print (\"The r2 score of RidgeCV on test is\",r2_score(y_test.tolist(), y_test_pred_ridge_adjusted.tolist()))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1873c0f3550>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(4, 3))\n",
    "plt.scatter(y_test, y_test_pred_ridge_adjusted)\n",
    "plt.plot([-3, 3], [-3, 3], '--k')   #数据已经标准化，3倍标准差即可\n",
    "plt.axis('tight')\n",
    "plt.xlabel('True cnt')\n",
    "plt.ylabel('Predicted cnt')\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "用均值校正后，线穿过了一群点的中心，但是还很偏。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "4.2 数据少的，预测也许会差一点  \n",
    "\n",
    "原先觉得holiday的数据特别少，那么对holiday那天的自行车数目的预测有可能比较差。但是实际验证后发现数据少的并不一定预测差。对workingday也是一样。 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of RidgeCV on test for holiday is 0.707729000551\n",
      "The r2 score of RidgeCV on test for non holiday is 0.635637186325\n"
     ]
    }
   ],
   "source": [
    "holiday_id=trainingData[trainingData.holiday==1].instant\n",
    "nonholiday_id=trainingData[trainingData.holiday==0].instant\n",
    "\n",
    "\n",
    "y_test_pred_ridge_holiday=y_test_pred_ridge_adjusted[holiday_id]\n",
    "y_test_pred_ridge_nonholiday=y_test_pred_ridge_adjusted[nonholiday_id]\n",
    "y_test_holiday=y_test[holiday_id]\n",
    "y_test_nonholiday=y_test[nonholiday_id]\n",
    "print (\"The r2 score of RidgeCV on test for holiday is\",r2_score(y_test_holiday.tolist(), y_test_pred_ridge_holiday.tolist()))\n",
    "print (\"The r2 score of RidgeCV on test for non holiday is\",r2_score(y_test_nonholiday.tolist(), y_test_pred_ridge_nonholiday.tolist()))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of RidgeCV on test for workingday is 0.616533629099\n",
      "The r2 score of RidgeCV on test for non workingday is 0.678892983501\n"
     ]
    }
   ],
   "source": [
    "workingday_id=trainingData[trainingData.workingday==1].instant\n",
    "nonworking_id=trainingData[trainingData.workingday==0].instant\n",
    "\n",
    "\n",
    "y_test_pred_ridge_workingday=y_test_pred_ridge_adjusted[workingday_id]\n",
    "y_test_pred_ridge_nonworkingday=y_test_pred_ridge_adjusted[nonworking_id]\n",
    "y_test_workingday=y_test[workingday_id]\n",
    "y_test_nonworkingday=y_test[nonworking_id]\n",
    "print (\"The r2 score of RidgeCV on test for workingday is\",r2_score(y_test_workingday.tolist(), y_test_pred_ridge_workingday.tolist()))\n",
    "print (\"The r2 score of RidgeCV on test for non workingday is\",r2_score(y_test_nonworkingday.tolist(), y_test_pred_ridge_nonworkingday.tolist()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "4.3 类别特征的处理  \n",
    "在和同学的讨论中，得知了类别特征处理的重要性。当前的类别特征如季节，由编号组成。但是季节1与季节2应该地位相等，而没有顺序的概念，且类别特征应该作为离散值，而不是当作数，作为连续值。用编号并不能很好的体现这两点。可以用OneHotEncoder."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import OneHotEncoder\n",
    "from scipy.sparse import hstack\n",
    "OneHotEnc = OneHotEncoder()\n",
    "x_train_cat= OneHotEnc.fit_transform(trainingData1[['season','holiday','weekday','workingday','weathersit']])\n",
    "x_test_cat= OneHotEnc.transform(testData1[['season','holiday','weekday','workingday','weathersit']])\n",
    "x_train_num=trainingData1[['atemp','hum','windspeed']]\n",
    "x_test_num=testData1[['atemp','hum','windspeed']]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "#对数值数据标准化\n",
    "ss_X_num =StandardScaler()\n",
    "x_train_num=ss_X_num.fit_transform(x_train_num)\n",
    "x_test_num=ss_X_num.transform(x_test_num)\n",
    "X_train_new = hstack((x_train_cat,x_train_num))\n",
    "X_test_new = hstack((x_test_cat,x_test_num))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of RidgeCV on test is 0.671809927545\n",
      "The r2 score of RidgeCV on train is 0.799568781911\n"
     ]
    }
   ],
   "source": [
    "\n",
    "#设置超参数（正则参数）范围\n",
    "alphas = [ 0.01, 0.1, 1, 10,100]\n",
    "#n_alphas = 20\n",
    "#alphas = np.logspace(-5,2,n_alphas)\n",
    "\n",
    "#生成一个RidgeCV实例\n",
    "ridge2 = RidgeCV(alphas=alphas, fit_intercept=True,normalize=False,store_cv_values=True)  \n",
    "#模型训练\n",
    "ridge2.fit(X_train_new, y_train)    \n",
    "\n",
    "#预测\n",
    "y_test_pred_ridge2 = ridge2.predict(X_test_new)\n",
    "y_train_pred_ridge2 = ridge2.predict(X_train_new)\n",
    "y_test_pred_ridge_adjusted2=y_test_pred_ridge2+y_diff \n",
    "print (\"The r2 score of RidgeCV on test is\",r2_score(y_test.tolist(), y_test_pred_ridge_adjusted2.tolist()))\n",
    "print (\"The r2 score of RidgeCV on train is\", r2_score(y_train.tolist(), y_train_pred_ridge2.tolist()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "相比处理类别特征前，r2score提高了一些。  \n",
    "(处理前的r2score:  \n",
    "The r2 score of RidgeCV on test is 0.638099937154 \n",
    "The r2 score of RidgeCV on train is 0.755822095914)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1873c016cc0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 1.0\n"
     ]
    }
   ],
   "source": [
    "#此时的正则\n",
    "mse_mean = np.mean(ridge2.cv_values_, axis = 0)\n",
    "plt.plot(np.log10(alphas), mse_mean.reshape(len(alphas),1)) \n",
    "\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()\n",
    "\n",
    "print ('alpha is:', ridge2.alpha_)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1873c0da898>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(4, 3))\n",
    "plt.scatter(y_test, y_test_pred_ridge_adjusted2)\n",
    "plt.plot([-3, 3], [-3, 3], '--k')   #数据已经标准化，3倍标准差即可\n",
    "plt.axis('tight')\n",
    "plt.xlabel('True cnt')\n",
    "plt.ylabel('Predicted cnt')\n",
    "plt.tight_layout()"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [conda root]",
   "language": "python",
   "name": "conda-root-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
